Matthias Clasen [Tue, 21 Jul 2020 22:22:41 +0000 (22:22 +0000)]
Merge branch 'wip/chergert/quartz4u' into 'master'
Merge GDK macOS branch
See merge request GNOME/gtk!2272
Matthias Clasen [Tue, 21 Jul 2020 21:53:16 +0000 (21:53 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
gdk: Update gdkkeysyms.h
See merge request GNOME/gtk!2271
Christian Hergert [Thu, 23 Apr 2020 23:36:46 +0000 (16:36 -0700)]
macos: prototype new GDK backend for macOS
This is fairly substantial rewrite of the GDK backend for quartz and
renamed to macOS to allow for a greenfield implementation.
Many things have come across from the quartz implementation fairly
intact such as the eventloop integration design and discovery of
event windows from the NSEvent.
However much has been changed to fit in with the new GDK design and
how removal of child GdkWindow have been completely eliminated.
Furthermore, the new GdkPopup allows for regular NSWindow to be used
to provide popovers unlike the previous implementation.
The object design more closely follows the ideal for a GDK backend.
Views have been broken out into subclasses so that we can support
multiple GSK renderer paths such as GL and Cairo (and Metal in the
future). However mixed mode GL and Cairo will not be supported. Currently
only the Cairo renderer has been implemented.
A new frame clock implementation using CVDisplayLink provides more
accurate information about when to draw drawing the next frame. Some
testing will need to be done here to understand the power implications
of this.
This implementation has also gained edge snapping for CSD windows. Some
work was also done to ensure that CSD windows have opaque regions
registered with the display server.
** This is still very much a work-in-progress **
Some outstanding work that needs to be done:
- Finish a GL context for macOS and alternate NSView for GL rendering
(possibly using speciailized CALayer for OpenGL).
- Input rework to ensure that we don't loose remapping of keys that was
dropped from GDK during GTK 4 development.
- Make sure input methods continue to work.
- Drag-n-Drop is still very much a work in progress
- High resolution input scrolling needs various work in GDK to land
first before we can plumb that to NSEvent.
- gtk/ has a number of things based on GDK_WINDOWING_QUARTZ that need
to be updated to use the macOS backend.
But this is good enough to start playing with and breaking things which
is what I'd like to see.
Christian Hergert [Sat, 18 Jul 2020 01:07:28 +0000 (18:07 -0700)]
gdk: disable file transfer portal on macOS
Christian Hergert [Sat, 18 Jul 2020 01:05:14 +0000 (18:05 -0700)]
build: add ATK fallback subproject wrapper
Very similar to the other fallbacks we use.
Christian Hergert [Sat, 18 Jul 2020 00:59:09 +0000 (17:59 -0700)]
build: squash various warnings with Clang
Otherwise we have really chatty builds that make it difficult to catch
new issues when compiling.
Christian Hergert [Sat, 18 Jul 2020 00:57:17 +0000 (17:57 -0700)]
build: fix linking support on macOS with Clang
This was preventing any sort of building on macOS, even though the quartz
backend is currently non-functional. Fixing this is a pre-requisite to
getting a new macOS backend compiling.
Matthias Clasen [Tue, 21 Jul 2020 20:55:28 +0000 (16:55 -0400)]
gdk: Update gdkkeysyms.h
Run the gdkkeysyms-update.pl script to pick up several
new keysyms:
GDK_dead_lowline
GDK_dead_aboveverticalline
GDK_dead_belowverticalline
GDK_dead_longsolidusoverlay
GDK_Keyboard
GDK_WWAN
GDK_RFKill
GDK_AudioPreset
Matthias Clasen [Mon, 20 Jul 2020 22:06:42 +0000 (22:06 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
inspector: Make picking objects show them
Closes #1876
See merge request GNOME/gtk!2269
Matthias Clasen [Mon, 20 Jul 2020 21:30:16 +0000 (17:30 -0400)]
inspector: Make picking objects show them
Changing the selection in the object tree is
not a useful action if we are already in the
object details. Most likely, a user who picks
an object wants to inspect its details, so
just always show them.
Fixes: #1876
Matthias Clasen [Mon, 20 Jul 2020 16:17:49 +0000 (16:17 +0000)]
Merge branch 'barthalion/asan-runner' into 'master'
ci: Switch ASAN tests to runners tagged so
See merge request GNOME/gtk!2267
Matthias Clasen [Mon, 20 Jul 2020 16:17:17 +0000 (16:17 +0000)]
Merge branch 'action-muxer-speedup' into 'master'
Action muxer speedup
See merge request GNOME/gtk!1754
Bartłomiej Piotrowski [Mon, 20 Jul 2020 14:41:46 +0000 (16:41 +0200)]
ci: Switch ASAN tests to runners tagged so
Matthias Clasen [Sun, 19 Jul 2020 21:04:11 +0000 (17:04 -0400)]
actionmuxer: Update docs and clean up headers
Update the doc comment at the top to describe the
current functionality of GtkActionMuxer.
Matthias Clasen [Sun, 19 Jul 2020 19:11:35 +0000 (15:11 -0400)]
actionmuxer: Use an array for accels
We have a lot of accels across all the muxers, but the vast
majority has just one or two, so an array is going to be
smaller and faster for this.
Matthias Clasen [Sun, 19 Jul 2020 13:45:12 +0000 (09:45 -0400)]
actionmuxer: Create observed_actions and groups on demand
The vast majority of action muxers don't have observers or
groups, so we can avoid the overhead of carrying all these
empty hash tables.
Matthias Clasen [Sun, 19 Jul 2020 05:56:00 +0000 (01:56 -0400)]
inspector: Make the actions tab work again
Bring back the actions tab; we don't receive
changes anymore, since GtkActionMuxer lost
the GActionGroup signals for this, and the
action observer machinery has no way to listen
for all changes.
Matthias Clasen [Sun, 19 Jul 2020 05:55:13 +0000 (01:55 -0400)]
Add gtk_action_muxer_list_actions
This is needed to reinstate the actions support
in the inspector.
Matthias Clasen [Sun, 19 Jul 2020 05:17:23 +0000 (01:17 -0400)]
actionmuxer: Stop implementing GActionGroup
Instead of implementing the GActionGroup interface
and using its signals for propagating changes up
and down the muxer hierarchy, use the GtkActionObserver
mechanism. This cuts down on the signal emission
overhead.
Matthias Clasen [Sun, 19 Jul 2020 02:30:02 +0000 (22:30 -0400)]
actionmuxer: Port internal users
Port all internal users of the action muxer
from the GActionGroup interface to the new
action muxer apis.
Matthias Clasen [Sun, 19 Jul 2020 02:28:53 +0000 (22:28 -0400)]
actionmuxer: Add some more api
We want to drop the GActionGroup interface from
GtkActionMuxer, so add the necessary api directly
to GtkActionMuxer itself.
Matthias Clasen [Sun, 19 Jul 2020 02:28:03 +0000 (22:28 -0400)]
inspector: Remove action support temporarily
This is using the action muxer as a GActionGroup,
and we want to remove that interface from GtkActionMuxer.
The support will come back later.
Matthias Clasen [Fri, 24 Apr 2020 05:11:13 +0000 (01:11 -0400)]
Speed up action muxer setup more
Don't emit signals for group insertion/removal
if nobody is listening.
Matthias Clasen [Fri, 24 Apr 2020 04:52:17 +0000 (00:52 -0400)]
Speed up action muxer setup
We don't need to duplicate all these action names and
emit all these signals if nobody is listening.
Matthias Clasen [Mon, 20 Jul 2020 12:23:12 +0000 (12:23 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!2266
Matthias Clasen [Mon, 20 Jul 2020 01:21:41 +0000 (21:21 -0400)]
gsk: Remove an unused debug flag
GSK_DEBUG_DIFF was not used anywhere, so remove it.
Matthias Clasen [Mon, 20 Jul 2020 01:10:12 +0000 (21:10 -0400)]
inspector: Add a few more debug flags
Add check buttons for GTK_DEBUG=constraints and
GTK_DEBUG=layout in the logs page.
Matthias Clasen [Mon, 20 Jul 2020 01:03:17 +0000 (21:03 -0400)]
Tweak the GTK_DEBUG=help output
I got the layout flag wrong when I added the
improved help output. It is about layout managers,
not about showing layout borders.
Matthias Clasen [Sun, 19 Jul 2020 23:50:09 +0000 (23:50 +0000)]
Merge branch 'list-model-docs' into 'master'
List model docs
See merge request GNOME/gtk!2182
Matthias Clasen [Sun, 19 Jul 2020 19:14:04 +0000 (19:14 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!2265
Matthias Clasen [Sun, 19 Jul 2020 16:52:31 +0000 (12:52 -0400)]
windowhandle: Don't use an action muxer needlessly
The api that is meant to be used here is
gtk_widget_activate_action.
Matthias Clasen [Sat, 18 Jul 2020 22:28:51 +0000 (18:28 -0400)]
NEWS: Updates
Matthias Clasen [Sat, 18 Jul 2020 17:31:31 +0000 (17:31 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!2264
Matthias Clasen [Sat, 18 Jul 2020 16:51:18 +0000 (12:51 -0400)]
button: Add explicit key bindings for activation
We should not rely on GtkWindow to have global
"activate-default" key bindings that happen to
fall back to activating the focus widget. This is
unreliable, since the bubbling up from the button
to the toplevel may run across other widgets that
may want to use Enter for their own purpose, and
then the button loses out. By adding our own
key bindings, the button gets to handle it before
its ancestors.
This fixes check buttons in the inspector property
list not reacting to Enter despite having focus.
Matthias Clasen [Sat, 18 Jul 2020 15:51:45 +0000 (11:51 -0400)]
text: Claim clicks when grabbing focus
If we don't, an ancestor (such a GtkListItemWidget)
may interpret the click as "I should grab focus!",
and still our focus away. This was causing hard-to-focus
entries in the property list in the inspector.
Matthias Clasen [Sat, 18 Jul 2020 15:53:16 +0000 (11:53 -0400)]
inspector: Add focus handling to the property editor
We want to focus the actual control here.
Matthias Clasen [Sat, 18 Jul 2020 14:10:38 +0000 (10:10 -0400)]
editablelabel: Stop editing on focus-out
This is the expected behavior for the main use case,
treeview-like 'edit one cell at a time'.
Matthias Clasen [Sat, 18 Jul 2020 14:10:28 +0000 (10:10 -0400)]
fixup editing style class
Matthias Clasen [Sat, 18 Jul 2020 13:55:46 +0000 (09:55 -0400)]
editablelabel: Document css nodes
Just the usual.
Matthias Clasen [Sat, 18 Jul 2020 13:54:55 +0000 (09:54 -0400)]
editablelabel: Add a style class while editing
Add the .editing style class to the editable label
while it is editing. The idea is that themes can
show a frame around the entry.
Rico Tzschichholz [Sat, 18 Jul 2020 11:06:47 +0000 (11:06 +0000)]
Merge branch 'wip/ricotz/annotations' into 'master'
gtk: Improve g-i annotations for methods of GtkExpression subclasses
See merge request GNOME/gtk!2263
Rico Tzschichholz [Sat, 18 Jul 2020 10:29:29 +0000 (12:29 +0200)]
gtk: Improve g-i annotations for methods of GtkExpression subclasses
Matthias Clasen [Sat, 18 Jul 2020 04:31:04 +0000 (00:31 -0400)]
inspector: Clean up GtkInspectorGeneral
Drop the Private struct.
Matthias Clasen [Sat, 18 Jul 2020 04:25:46 +0000 (00:25 -0400)]
inspector: Clean up GtkInspectorMiscInfo
Drop the Private struct.
Matthias Clasen [Sat, 18 Jul 2020 04:17:42 +0000 (00:17 -0400)]
inspector: Clean up GtkInspectorVisual
Drop the Private struct, and do all cleanup in dispose.
Matthias Clasen [Sat, 18 Jul 2020 03:59:49 +0000 (23:59 -0400)]
inspector: Clean up GtkInspectorActions
Drop the Private struct, dispose properly,
and don't derive from GtkBox.
Matthias Clasen [Sat, 18 Jul 2020 03:36:05 +0000 (23:36 -0400)]
inspector: Clean up GtkInspectorActionEditor
Drop the Private struct, dispose properly,
and don't derive from GtkBox.
Matthias Clasen [Sat, 18 Jul 2020 03:24:14 +0000 (23:24 -0400)]
inspector: Clean up GtkInspectorLogs
Drop the Private struct, dispose properly,
and don't derive from GtkBox.
Matthias Clasen [Sat, 18 Jul 2020 03:15:42 +0000 (23:15 -0400)]
inspector: Allow disposing the inspector
We were hiding the inspector when the window
is closed, but that has the side-effect of
keeping references to application windows,
so we would keep them artificially alive,
which can have side-effects.
So, make the inspector go away when closed.
Matthias Clasen [Sat, 18 Jul 2020 03:15:25 +0000 (23:15 -0400)]
inspector: Properly dispose GtkInspectorWindow
Matthias Clasen [Sat, 18 Jul 2020 03:13:29 +0000 (23:13 -0400)]
inspector: Properly dispose GtkInspectorShortcuts
Matthias Clasen [Sat, 18 Jul 2020 03:05:07 +0000 (23:05 -0400)]
inspector: Properly dispose GtkInspectorListData
Matthias Clasen [Sat, 18 Jul 2020 02:54:19 +0000 (22:54 -0400)]
inspector: Dispose tree data properly
Another place where we were leaking children.
Matthias Clasen [Sat, 18 Jul 2020 02:44:01 +0000 (22:44 -0400)]
inspector: Dispose the recorder properly
We were leaking children here.
Matthias Clasen [Sat, 18 Jul 2020 02:37:24 +0000 (22:37 -0400)]
inspector: Drop the recorder Private struct
Matthias Clasen [Sat, 18 Jul 2020 01:17:43 +0000 (01:17 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
gtk-demo: Don't use GtkColorSwatch
See merge request GNOME/gtk!2262
Matthias Clasen [Sat, 18 Jul 2020 00:44:06 +0000 (20:44 -0400)]
gtk-demo: Don't use GtkColorSwatch
Making our own is 80 lines of code, so just do it.
Matthias Clasen [Fri, 17 Jul 2020 13:18:59 +0000 (13:18 +0000)]
Merge branch 'ebassi/for-master' into 'master'
Fix typo in the GtkStrinFilter constructor declaration
See merge request GNOME/gtk!2261
Emmanuele Bassi [Fri, 17 Jul 2020 13:16:46 +0000 (14:16 +0100)]
Fix typo in the GtkStrinFilter constructor declaration
Emmanuele Bassi [Fri, 17 Jul 2020 13:09:55 +0000 (13:09 +0000)]
Merge branch 'ebassi/for-master' into 'master'
Fix typo in the gtk-doc stanza for gtk_string_filter_new()
See merge request GNOME/gtk!2259
Emmanuele Bassi [Fri, 17 Jul 2020 11:03:17 +0000 (12:03 +0100)]
Fix typo in the gtk-doc stanza for gtk_string_filter_new()
Matthias Clasen [Fri, 17 Jul 2020 10:56:16 +0000 (10:56 +0000)]
Merge branch 'wip/baedert/for-master' into 'master'
Wip/baedert/for master
Closes #2776
See merge request GNOME/gtk!2258
Timm Bäder [Fri, 17 Jul 2020 05:14:50 +0000 (07:14 +0200)]
testwidgettransforms: Fix GtkBox casts
Timm Bäder [Fri, 17 Jul 2020 04:31:57 +0000 (06:31 +0200)]
boxlayout: Remove unnecessary checks
The pointers passed to GtkLayoutManager::measure() are never NULL. The
ones passed to gtk_layout_manager_measure() can be, however.
Timm Bäder [Fri, 17 Jul 2020 04:27:50 +0000 (06:27 +0200)]
boxlayout: Remove unused include
Timm Bäder [Fri, 17 Jul 2020 04:27:23 +0000 (06:27 +0200)]
migration guide: Remove a stray html tag
Timm Bäder [Sun, 12 Jul 2020 12:38:50 +0000 (14:38 +0200)]
widget: Save a gtk_css_node_get_style call
Timm Bäder [Sun, 12 Jul 2020 11:57:20 +0000 (13:57 +0200)]
widget: Remove useless if statement
filter_value is never NULL anyway.
Timm Bäder [Sun, 12 Jul 2020 09:33:34 +0000 (11:33 +0200)]
snapshot: Use collect_default directoy in push_debug()
Instead of going through collect_debug and then doing a collect_default
anyway if the message is NULL.
Timm Bäder [Sun, 12 Jul 2020 09:20:31 +0000 (11:20 +0200)]
debug: Remove resize highlighting
This has been broken ever since the debug highlighting moved to
inspector overlays.
Timm Bäder [Sun, 12 Jul 2020 08:55:31 +0000 (10:55 +0200)]
GdkRGBA: Fix typo in documentation
Timm Bäder [Sun, 12 Jul 2020 07:40:00 +0000 (09:40 +0200)]
gl renderer: Avoid 9-slicing things that can't be
The outline needs to be large enough so changing the size of the outline
does not affect the resulting blurred texture.
Fixes #2776
Timm Bäder [Wed, 8 Jul 2020 04:14:55 +0000 (06:14 +0200)]
gl renderer: Remove outdated comment
Timm Bäder [Wed, 8 Jul 2020 03:45:34 +0000 (05:45 +0200)]
gl renderer: Try to intersect rounded clips more often
Timm Bäder [Sun, 5 Jul 2020 11:58:52 +0000 (13:58 +0200)]
gl renderer: Remove unused flag
Timm Bäder [Sun, 5 Jul 2020 09:03:36 +0000 (11:03 +0200)]
adwaita: Remove header bar border radius
We get this from the window node these days.
Timm Bäder [Sat, 4 Jul 2020 07:26:08 +0000 (09:26 +0200)]
icontheme: Indentation
Timm Bäder [Fri, 3 Jul 2020 04:41:29 +0000 (06:41 +0200)]
gl renderer: Ignore rounded clip that only increase the clip
This fixes the widget factory rendering too much.
In the widget-factory, we generally have a pretty small update area (two
spinners and a progressbar). We take the extents of that as a update
area and inital clip.
However, the first clip node we see is from the toplevel window, which
essentially increases the clip again to almost the entire window.
Fix that by ignoring such cases.
Timm Bäder [Wed, 1 Jul 2020 14:22:30 +0000 (16:22 +0200)]
testsuite: Fix test case indentation
Matthias Clasen [Fri, 17 Jul 2020 03:20:20 +0000 (03:20 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master
See merge request GNOME/gtk!2257
Matthias Clasen [Fri, 17 Jul 2020 02:14:39 +0000 (22:14 -0400)]
docs: Move columns below columnview
Matthias Clasen [Fri, 17 Jul 2020 01:58:52 +0000 (21:58 -0400)]
Cosmetic docs change
Matthias Clasen [Fri, 17 Jul 2020 01:48:08 +0000 (21:48 -0400)]
docs: Revise the filter docs a bit
Matthias Clasen [Fri, 17 Jul 2020 01:45:11 +0000 (21:45 -0400)]
docs: Revise sorter docs a bit
Matthias Clasen [Fri, 17 Jul 2020 01:44:31 +0000 (21:44 -0400)]
bitset: try again
Matthias Clasen [Fri, 17 Jul 2020 01:05:07 +0000 (01:05 +0000)]
Merge branch 'wip/chergert/subclass-treeview' into 'master'
treeview: allow subclassing GtkTreeView
Closes #2936
See merge request GNOME/gtk!2256
Matthias Clasen [Fri, 17 Jul 2020 01:02:33 +0000 (21:02 -0400)]
docs: Add more GtkExpression
Make GtkExpression show up in the object
hierarchy, and add the param spec and GValue
support to the docs.
Matthias Clasen [Fri, 17 Jul 2020 00:27:00 +0000 (20:27 -0400)]
docs: Document GtkBitsetIter
Matthias Clasen [Thu, 16 Jul 2020 23:52:08 +0000 (19:52 -0400)]
docs: Add an example
Add a small example for setting up columnview sorting.
Matthias Clasen [Thu, 16 Jul 2020 23:45:21 +0000 (19:45 -0400)]
docs: Fix examples
The formatting for examples in the GtkExpression
long description was messed up.
Christian Hergert [Fri, 17 Jul 2020 00:06:06 +0000 (17:06 -0700)]
treeview: allow subclassing GtkTreeView
Porting code from GTK 3 without the ability to subclass GtkTreeView
directly can cause an extreme amount of pain on application developers.
It can also complicate performance when it comes to dealing with
encapsulation as the outer widget would also encapsulate the GtkScrollable
implementation from GtkTreeView, typically through GtkViewport.
Fixes #2936
Matthias Clasen [Thu, 16 Jul 2020 23:44:24 +0000 (19:44 -0400)]
docs: Link to GtkTreeRowReference
The list overview cross-reference table links
to all objects, except for this one.
Matthias Clasen [Thu, 16 Jul 2020 23:43:39 +0000 (19:43 -0400)]
docs: Add GtkTreeExpander
We want to link to it from various places, so it needs
to be present in the docs.
Matthias Clasen [Thu, 16 Jul 2020 23:31:31 +0000 (23:31 +0000)]
Merge branch 'matthiasc/arrays' into 'master'
Matthiasc/arrays
See merge request GNOME/gtk!2253
Matthias Clasen [Thu, 16 Jul 2020 17:12:25 +0000 (13:12 -0400)]
multifilter: Use GdkArray for the filters
Matthias Clasen [Thu, 16 Jul 2020 16:53:29 +0000 (12:53 -0400)]
multisorter: Use GdkArray for the sorters
Matthias Clasen [Thu, 16 Jul 2020 21:03:21 +0000 (21:03 +0000)]
Merge branch 'matthiasc/for-master' into 'master'
gtk-demo: Use better api
See merge request GNOME/gtk!2254
Matthias Clasen [Thu, 16 Jul 2020 20:24:49 +0000 (16:24 -0400)]
gtk-demo: Use better api
We have a getter for the model, lets use it.
Benjamin Otte [Thu, 16 Jul 2020 19:43:45 +0000 (19:43 +0000)]
Merge branch 'wip/otte/for-master' into 'master'
Wip/otte/for master
See merge request GNOME/gtk!2251
Matthias Clasen [Thu, 16 Jul 2020 18:52:22 +0000 (18:52 +0000)]
Merge branch 'missing-exports' into 'master'
Add missing exports for GtkColumnView methods.
See merge request GNOME/gtk!2252